package com.example.payment.dto;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import java.math.BigDecimal;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.NotBlank;
import com.example.payment.enums.PaymentType;
import com.example.payment.enums.PaymentChannel;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class PaymentRequest {
    
    @NotBlank(message = "业务订单号不能为空")
    private String businessOrderNo;
    
    @NotBlank(message = "业务类型不能为空")
    private String businessType;
    
    @NotNull(message = "支付金额不能为空")
    @DecimalMin(value = "0.01", message = "支付金额必须大于0")
    private BigDecimal amount;
    
    @NotBlank(message = "订单描述不能为空")
    private String description;
    
    @NotNull(message = "支付方式不能为空")
    private PaymentType paymentType;
    
    @NotNull(message = "支付渠道不能为空")
    private PaymentChannel channel;
    
    private String returnUrl; // 支付完成返回地址
    
    private String notifyUrl; // 支付通知地址
    
    @NotNull(message = "用户ID不能为空")
    private Long userId;
    
    private String userName;
    
    private String currency = "CNY";
} 